1 package activity;
2
3 import java.lang.*;
4 import java.util.*;
5 import javax.swing.*;
6 import java.awt.*;
7 import javax.swing.border.*;
8 import java.awt.event.*;
9 import attr.*;
10
11 public class AddEmployeeActivity extends JFrame implements ActionListener {
12 private JPanel panel;
13 private ViewEmployeeActivity activity;
14 private JButton buttonLogout, buttonBack, buttonAdd, buttonEdit, buttonDelete, buttonRandom;
15 private JLabel title, header, employeeIdLabel, employeeNameLabel, roleLabel, employeePhoneLabel, salaryLabel;
16 private JComboBox roleCB;
17 private JTextField employeeIdTF, employeeNameTF, salaryTF, employeePhoneTF1, employeePhoneTF2, passwordTF;
18 private Random r;
19
20 public AddEmployeeActivity(ViewEmployeeActivity prev, Employee employee) {
21 super("Add Employee");
22
23 this.setSize(Theme.GUI_WIDTH, Theme.GUI_HEIGHT);
24 this.setResizable(false);
25 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
26 this.setLocationRelativeTo(null);
27 this.activity = prev;
28 r = new Random();
29
30 panel = new JPanel();
31 panel.setLayout(null);
32 panel.setBackground(Theme.BACKGROUND_PANEL);
33
34 title = new JLabel("Add Employee");
35 title.setBounds(30, 40, 340,75);
36 title.setOpaque(true);
37 title.setBorder(new EmptyBorder(0,20,0,0));
38 title.setFont(Theme.FONT_TITLE);
39 title.setForeground(Theme.COLOR_TITLE);
40 panel.add(title);
41
42 buttonLogout = new JButton("Logout");
43 buttonLogout.setBounds(Theme.GUI_WIDTH-140, 40, Theme.BUTTON_PRIMARY_WIDTH,30);
44 buttonLogout.setFont(Theme.FONT_BUTTON);
45 buttonLogout.setBackground(Color.WHITE);
46 buttonLogout.setForeground(Theme.COLOR_TITLE);
47 buttonLogout.addActionListener(this);
48 panel.add(buttonLogout);
49
50 buttonBack = new JButton("Back");
51 buttonBack.setBounds(Theme.GUI_WIDTH-140, 80, Theme.BUTTON_PRIMARY_WIDTH,30);
52 buttonBack.setFont(Theme.FONT_BUTTON);
53 buttonBack.setBackground(Theme.BACKGROUND_BUTTON_PRIMARY);
54 buttonBack.setForeground(Theme.COLOR_BUTTON_PRIMARY);
55 buttonBack.addActionListener(this);
56 panel.add(buttonBack);
57
58 employeeIdLabel = new JLabel("Employee ID: ");
59 employeeIdLabel.setBounds(60, 140, 140, 30);
60 employeeIdLabel.setFont(Theme.FONT_REGULAR);
61 panel.add(employeeIdLabel);
62
63 employeeIdLabel = new JLabel("Password: ");
64 employeeIdLabel.setBounds(60, 190, 140, 30);
65 employeeIdLabel.setFont(Theme.FONT_REGULAR);
66 panel.add(employeeIdLabel);
67
68 employeeNameLabel = new JLabel("Name: ");
69 employeeNameLabel.setBounds(60, 240, 140, 30);
70 employeeNameLabel.setFont(Theme.FONT_REGULAR);
71 panel.add(employeeNameLabel);
72
73 employeePhoneLabel = new JLabel("Phone No: ");
74 employeePhoneLabel.setBounds(60, 290, 140, 30);
75 employeePhoneLabel.setFont(Theme.FONT_REGULAR);
76 panel.add(employeePhoneLabel);
77
78 roleLabel = new JLabel("Role: ");
79 roleLabel.setBounds(60, 340, 340, 30);
80 roleLabel.setFont(Theme.FONT_REGULAR);
81 panel.add(roleLabel);
82
83 salaryLabel = new JLabel("Salary: ");
84 salaryLabel.setBounds(60, 390, 140, 30);
85 salaryLabel.setFont(Theme.FONT_REGULAR);
86 panel.add(salaryLabel);
87
88 employeeIdTF = new JTextField();
89 employeeIdTF.setBounds(180, 140, 220, 30);
90 employeeIdTF.setFont(Theme.FONT_INPUT);
91 panel.add(employeeIdTF);
92
93 passwordTF = new JTextField(""+(r.nextInt(89999999)+10000000));
94 passwordTF.setBounds(180, 190, 220, 30);
95 passwordTF.setFont(Theme.FONT_INPUT);
96 passwordTF.setEnabled(false);
97 passwordTF.setDisabledTextColor(Color.BLACK);
98 panel.add(passwordTF);
99
100 buttonRandom = new JButton("Generate");
101 buttonRandom.setBounds(400, 190, Theme.BUTTON_PRIMARY_WIDTH,30);
102 buttonRandom.setFont(Theme.FONT_BUTTON);
103 buttonRandom.setBackground(Theme.BACKGROUND_BUTTON_PRIMARY);
104 buttonRandom.setForeground(Theme.COLOR_BUTTON_PRIMARY);
105 buttonRandom.addActionListener(this);
106 panel.add(buttonRandom);
107
108 employeeNameTF = new JTextField();
109 employeeNameTF.setBounds(180, 240, 220, 30);
110 employeeNameTF.setFont(Theme.FONT_INPUT);
111 panel.add(employeeNameTF);
112
113 employeePhoneTF1 = new JTextField("+880");
114 employeePhoneTF1.setBounds(180, 290, 40, 30);
115 employeePhoneTF1.setEnabled(false);
116 employeePhoneTF1.setFont(Theme.FONT_INPUT);
117 panel.add(employeePhoneTF1);
118
119 employeePhoneTF2 = new JTextField();
120 employeePhoneTF2.setBounds(220, 290, 180, 30);
121 employeePhoneTF2.setFont(Theme.FONT_INPUT);
122 panel.add(employeePhoneTF2);
123
124 roleCB = new JComboBox(Employee.roles);
125 roleCB.setBounds(180, 340, 160, 30);
126 roleCB.setFont(Theme.FONT_INPUT);
127 panel.add(roleCB);
128
129 salaryTF = new JTextField();
130 salaryTF.setBounds(180, 390, 220, 30);
131 salaryTF.setFont(Theme.FONT_INPUT);
132 panel.add(salaryTF);
133
134 buttonAdd = new JButton("Add");
135 buttonAdd.setBounds(60, 440, Theme.BUTTON_PRIMARY_WIDTH,30);
136 buttonAdd.setFont(Theme.FONT_BUTTON);
137 buttonAdd.setBackground(Theme.BACKGROUND_BUTTON_PRIMARY);
138 buttonAdd.setForeground(Theme.COLOR_BUTTON_PRIMARY);
139 buttonAdd.addActionListener(this);
140 panel.add(buttonAdd);
141
142 header = new JLabel();
143 header.setBackground(Theme.BACKGROUND_HEADER);
144 header.setOpaque(true);
145 header.setBounds(0, 0, Theme.GUI_WIDTH, 75);
146 panel.add(header);
147
148 this.add(panel);
149 }
150
151 public void actionPerformed(ActionEvent ae) {
152 if (ae.getSource().equals(buttonLogout)) {
153 this.setVisible(false);
154 new LoginActivity().setVisible(true);
155 }
156 else if (ae.getSource().equals(buttonBack)) {
157 this.setVisible(false);
158 activity.setVisible(true);
159 }
160 else if (ae.getSource().equals(buttonAdd)) {
161 try {
162 Employee e = new Employee(employeeIdTF.getText().trim());
163 e.setPassword(passwordTF.getText().trim());
164 e.setEmployeeName(employeeNameTF.getText().trim());
165 e.setPhoneNumber(Integer.parseInt(employeePhoneTF2.getText()));
166 e.setSalary(Double.parseDouble(salaryTF.getText()));
167 e.setRole(roleCB.getSelectedItem().toString());
168 e.createEmployee();
169 employeeIdTF.setText("");
170 employeeNameTF.setText("");
171 employeePhoneTF2.setText("");
172 salaryTF.setText("");
173 roleCB.setSelectedIndex(0);
174 if (!activity.keywordTF.getText().trim().isEmpty())
175 activity.table.setModel(Employee.searchEmployee(activity.keywordTF.getText().trim(), activity.byWhatCB.getSelectedItem().toString()));
176 else
177 activity.table.setModel(Employee.searchEmployee("", "By Name"));
178 }
179 catch (NumberFormatException e) {
180 JOptionPane.showMessageDialog(this,"Enter phone no correctly!");
181 }
182 catch (IllegalArgumentException e) {
183 JOptionPane.showMessageDialog(this,e.getMessage());
184 }
185 }
186 else if (ae.getSource().equals(buttonRandom)) {
187 passwordTF.setText(""+(r.nextInt(89999999)+10000000));
188 }
189 else {}
190 }
191 }